package com.jie.util;

/**
 * Created by 12904 on 2018/8/13.
 */
public class ExportFileService {
    private static final String SAVEPATH = "D:\\";
    private static final String BUTTONTEXT = "导出";
    private static final String  TITLE = "导出数据";

//    public ExportFileService(){
//
//    }
//    /**
//     *
//     * @param filters  可选择的导出类型
//     * @return file[0] 文件全路径；file[1] 导出类型
//     */
//    public static String[] exportFile(List<FileFilter> filters){
//        JFileChooser fileChooser = initEmportFile(filters);
//        int result = fileChooser.showOpenDialog(null);
//        String type = fileChooser.getFileFilter().getDescription();
//        if (result == JFileChooser.APPROVE_OPTION) {
//            File file = fileChooser.getSelectedFile();
//            String fn = file.getPath();
//            String[] fileAndType = new String[2];
//            fileAndType[0]=fn;
//            fileAndType[1]=type;
//            return fileAndType;
//        }
//        return null;
//    }
//    /**
//     * 文件对话框中判断是否覆盖已存在文件，加入带导入类型
//     * @param filters 可选择的导入类型
//     * @return 文件选择框
//     */
//    private static JFileChooser initEmportFile(List<FileFilter> filters) {
//        JFileChooser fileChooser = new JFileChooser(SAVEPATH) {
//            private static final long serialVersionUID = 1L;
//
//            public void approveSelection() {
//                File file;
//                String fileName = this.getSelectedFile().getAbsolutePath();
//
//                file = new File(fileName);
//                if (file.exists()) {
//                    int copy = JOptionPane.showConfirmDialog(null,
//                            "是否要覆盖当前文件？", "保存", JOptionPane.YES_NO_OPTION,
//                            JOptionPane.QUESTION_MESSAGE);
//                    if (copy == JOptionPane.YES_OPTION) {
//                        super.setSelectedFile(file);
//                        super.approveSelection();
//                    }
//                } else
//                    super.approveSelection();
//            }
//        };
//        fileChooser.setAcceptAllFileFilterUsed(false);
//        fileChooser.setApproveButtonText(BUTTONTEXT);
//        fileChooser.setDialogTitle(TITLE);
//        for(FileFilter one :filters){
//            fileChooser.addChoosableFileFilter( one);
//        }
//        return fileChooser;
//    }
//    /**
//     * 创建新的Excel 工作簿
//     * @param filename 待导出文件名称的全路径，不带后缀
//     * @param data 待导出数据，首个list<Object>是字段信息
//     * @param sheetName 表单名称
//     * @return true 导出成功；false 导出失败
//     */
//    @SuppressWarnings("deprecation")
//    public static boolean createExcel(String filename, List<List<Object>> data,
//                                      String sheetName) {
//        HSSFWorkbook workbook = null;
//        HSSFSheet sheet = null;
//        HSSFRow[] rows = null;
//        HSSFCell[][] cells = null;
//        workbook = new HSSFWorkbook();
//        if (sheetName.trim().equals("")) {
//            sheet = workbook.createSheet("表");
//        } else {
//            sheet = workbook.createSheet(sheetName);
//        }
//        try {
//            int row = 0;
//            int col = 0;
//            if (data.size() > 0) {
//                row = data.size();
//                col = data.get(0).size();
//            }
//            rows = new HSSFRow[row];
//            cells = new HSSFCell[row][col];
//            for (int i = 0; i < data.size(); i++) {
//                rows[i] = sheet.createRow((short) i);
//                for (int j = 0; j < data.get(i).size(); j++) {
//                    cells[i][j] = rows[i].createCell((short) j);
//                    cells[i][j].setCellType(HSSFCell.CELL_TYPE_STRING);
//                    if (data.get(i).get(j) != null
//                            && !data.get(i).get(j).toString().trim().equals("")) {
//                        cells[i][j].setCellValue(data.get(i).get(j).toString()
//                                .trim());
//                    } else {
//                        cells[i][j].setCellValue("");
//                    }
//                }
//            }
//            FileOutputStream fOut = new FileOutputStream(filename);
//            // 把相应的Excel 工作簿存盘
//            workbook.write(fOut);
//            fOut.flush();
//            // 操作结束，关闭文件
//            fOut.close();
//            return true;
//        } catch (Exception e) {
//            return false;
//        }
//    }
//    /**
//     * 生成XML文件
//     * @param filename 待导出文件名称的全路径，不带后缀
//     * @param data 待导出数据,首个list<Object>是字段信息
//     * @return true 导出成功；false 导出失败
//     */
//    public static boolean createXML(String filename, List<List<Object>> data) {
//        Document doc = DocumentHelper.createDocument();
//        Element root = doc.addElement("root");
//        List<Object> name = data.get(0);
//
//        for (int i = 1; i < data.size(); i++) {
//            Element row = root.addElement("row");
//            for (int j = 0; j < name.size(); j++) {
//                Element cell = row.addElement("col" + j);
//                cell.setText(null == data.get(i).get(j) ? "" : data.get(i)
//                        .get(j).toString());
//                cell.addAttribute("name", name.get(j).toString());
//            }
//        }
//        try {
//            FileOutputStream fOut = new FileOutputStream(filename);
//            OutputFormat format = new OutputFormat("    ", true);
//            format.setEncoding("utf-8");
//            // 可以把System.out改为你要的流。
//            XMLWriter xmlWriter = new XMLWriter(fOut, format);
//            xmlWriter.write(doc);
//            xmlWriter.close();
//            return true;
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return false;
//    }
}

